// 1.搭建一个nodejs服务器
const http = require("http");
const fs = require("fs");
const path = require("path");
const mime = require("./mime.json");
const newsData = require("./data.json");
// 内置模块；
const url = require("url");
const server = http.createServer(function(req,res){
    // 区分地址；
    // 加载主页
    // localhost:8888/index?a=10; 和  localhost:8888/index 应该是一个地址；
   var urlData =  url.parse(req.url,true)  ; //格式化路径
//    console.log(urlData);
    var pathName = urlData.pathname;
    res.setHeader("content-type","text/html;charset=utf8");
    // console.log(req.url);
    if(pathName=="/" || pathName=="/index"){
        // let str = `姓名是${urlData.query.name};年龄是${urlData.query.age}`;
        // 加载主页 ；
       var data =  fs.readFileSync("./index.html");
        res.write(data);
    }else if(pathName=="/detail"){
       var data =  fs.readFileSync("./detail.html").toString();
    //    先找到对应数据；获取数据的id
    // 服务端推送数据
        var id = urlData.query.id;
        // console.log("id:--",id);
        var mydata = newsData.filter(item=>item.id==id);
        // console.log(data.toString());
        // 用正则替换标题
        var reg = /<h1 class="title">.+<\/h1>/g;
        var resdata =  data.replace(reg,`<h1 class="title">${mydata[0].title}</h1>`);
        // 替换具体的内容
        var reg2 = /<p class="content">[\s\S]+<\/p>/g;  //匹配 
        var sureData = resdata.replace(reg2,`<p class="content">${mydata[0].content}<\/p>`)
        /* 
             <p class="content">
                新闻内容新闻内容
                新闻内容新闻内容
                新闻内容新闻内容
            </p>
        */
        res.write(sureData);
    }else if(pathName=="/get"){
        // 接收get参数 然后通过json返还出去；
       let str =  JSON.stringify(newsData);
       res.write(str);
    }else if(pathName =="/getDetailData"){
        // 通过ajax请求；
        // 1接收 id
        // 2.通过id查找数据
        // 3.返还json数据

    }else{
        if(pathName!=="/favicon.ico"){
            // 加载各种css js 图片等等....
            // 获取加载文件的后缀名 
           var extname =  path.extname(req.url);
           var content = mime[extname];
        //    console.log("??",content);
        // 设置资源的头部
        res.setHeader("content-type",content);
        // 读取资源的内容 然后写入到页面里
        var data = fs.readFileSync("./"+req.url);
        res.write(data);
        }
    }
    res.end();
})

// 设置端口号
server.listen(8989);